package DTO;
// Generated 16/11/2012 12:38:33 PM by Hibernate Tools 3.2.1.GA


import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import org.hibernate.annotations.GenericGenerator;

@Entity
@Table(name = "concursos")
public class Concurso  implements java.io.Serializable {


    @Id
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid", strategy = "uuid")
    @Column(name = "id", length=32)   
    private String id;
    
    @Column(name="nombre", length=64, nullable=false)
    private String nombre;
    
    @Column(name="inicia", nullable=false)
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Date inicia;
    
    @Column(name="finaliza", nullable=false)
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Date finaliza;
    
    @Column(name = "autor", length=32)   
    //@OneToOne(cascade = CascadeType.ALL)
    private String autor;
    
    @Enumerated(EnumType.STRING)
    @Column(name="status", length=11, nullable=false)
    private tipos.ConcursoStatus status;
    
    @Enumerated(EnumType.STRING)
     @Column(name="tipo_inscripcion", length=10, nullable=false)
    private tipos.ConcursoTipo tipoInscripcion;
    private String convocatoria;
    
    @Column(name="publicidad_inicio", nullable=false)
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Date publicidadInicio;
    
    @Column(name="publicidad_fin", nullable=false)
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Date publicidadFin;

    public Concurso() {
    }

    public Concurso(String id, String nombre, Date inicia, Date finaliza, 
            String autor, tipos.ConcursoStatus status, 
            tipos.ConcursoTipo tipoInscripcion, String convocatoria, 
            Date publicidadInicio, Date publicidadFin) {
       this.id = id;
       this.nombre = nombre;
       this.inicia = inicia;
       this.finaliza = finaliza;
       this.autor = autor;
       this.status = status;
       this.tipoInscripcion = tipoInscripcion;
       this.convocatoria = convocatoria;
       this.publicidadInicio = publicidadInicio;
       this.publicidadFin = publicidadFin;
    }
   
    public String getId() {
        return this.id;
    }
    
    public void setId(String id) {
        this.id = id;
    }
    public String getNombre() {
        return this.nombre;
    }
    
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    public Date getInicia() {
        return this.inicia;
    }
    
    public void setInicia(Date inicia) {
        this.inicia = inicia;
    }
    public Date getFinaliza() {
        return this.finaliza;
    }
    
    public void setFinaliza(Date finaliza) {
        this.finaliza = finaliza;
    }
    public String getAutor() {
        return this.autor;
    }
    
    public void setAutor(Usuario autor) {
        this.autor = autor.getId();
    }
    public void setAutor(String autor) {
        this.autor = autor;
    }
    public tipos.ConcursoStatus getStatus() {
        return this.status;
    }
    
    public void setStatus(tipos.ConcursoStatus status) {
        this.status = status;
    }
    public tipos.ConcursoTipo getTipoInscripcion() {
        return this.tipoInscripcion;
    }
    
    public void setTipoInscripcion(tipos.ConcursoTipo tipoInscripcion) {
        this.tipoInscripcion = tipoInscripcion;
    }
    public String getConvocatoria() {
        return this.convocatoria;
    }
    
    public void setConvocatoria(String convocatoria) {
        this.convocatoria = convocatoria;
    }
    public Date getPublicidadInicio() {
        return this.publicidadInicio;
    }
    
    public void setPublicidadInicio(Date publicidadInicio) {
        this.publicidadInicio = publicidadInicio;
    }
    public Date getPublicidadFin() {
        return this.publicidadFin;
    }
    
    public void setPublicidadFin(Date publicidadFin) {
        this.publicidadFin = publicidadFin;
    }




}


